@startuml
title Схема пересылки сообщений между компонентами расширения Message Sender
left to right direction

  node "Browser" as BROWSER_NODE {
    folder "Active Tab" {
      component [content_script.js] as content_script
      folder "Web App" {
        component [inject_script.js] as inject_script
      }
    }
  frame "Options Tab" as OPTIONS_FRAME {
    component [options.js] as options
  }
  frame "Popup Menu" as POPUP_FRAME {
    component [popup.js] as popup
  }
  frame "DevTools" as DEVTOOLS_FRAME {
    component [devtools.js] as devtools
  }
  component [background.js] as background

  inject_script --> content_script: A1
  content_script --> options: A2
  options ..> content_script: A3
  content_script --> inject_script: A4

  popup --> devtools: B1
  devtools ..> popup: B2

  options --> devtools: C1
  devtools ..> options: C2
}
@enduml